package com.itcast.admin.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itcast.admin.domain.Setmeal;
import com.itcast.admin.domain.request.SetmealPageReqDTO;
import com.itcast.admin.domain.response.GetSetmealResDTO;
import com.itcast.admin.domain.response.ItemAndGroupResDTO;
import com.itcast.admin.domain.response.SetmealPagerResDTO;

import java.util.List;

/**
 * <p>
 * 套餐表 Mapper 接口
 * </p>
 *
 * @author author
 * @since 2024-11-05
 */
public interface SetmealMapper extends BaseMapper<Setmeal> {

    /**
     * 根据groupId查询关联的套餐名称
     * @param checkGroupId
     * @return
     */
    List<String> checkDisableById(Integer checkGroupId);

    /**
     * 禁用套餐
     * @param ids
     */
    void disableSetmeals(List<Integer> ids);

    /**
     * 校验更新操作会影响下架的套餐
     * @param itemId
     * @return
     */
    List<String> checkModifyById(Integer itemId);


    /**
     * 分页查询套餐
     * @param setmealPageReqDTO
     * @return
     */
    List<SetmealPagerResDTO> pageQuery(SetmealPageReqDTO setmealPageReqDTO);

    /**
     * 套餐关联体检项,体检组
     * @param setmealId
     * @param itemId
     */
    void insertItemAtSetmeal(Integer setmealId, Integer itemId,Integer groupId);

    /**
     * 根据套餐id查询套餐信息
     * @param id
     * @return
     */
    GetSetmealResDTO getSetmealById(Integer id);

    /**
     * 根据套餐id查询套餐关联的检查项目
     * @param id
     * @return
     */
    List<ItemAndGroupResDTO> queryCheckCategory(Integer id);

    /**
     * 删除套餐关联的检查项目
     * @param setmealId
     */
    void deleteItemAtSetmeal(Integer setmealId);
}
